/***************************************************************************
 创建者: 华磊
 开始时间: 2018.8.14
 copyright: (C) 华友高科
 修改说明: (每次有修改就添加一条，带有 修改人，修改时间，修改描述)
 example (1) hualei 2017.5.8 类的具体实现代码编写

 ***************************************************************************
 *  @file x.h
 *  功能:
 *
 *                                                                         *
 ***************************************************************************/
#ifndef SELECTINSTRUCTION_H
#define SELECTINSTRUCTION_H


#include "instructionEnum.h"
#include "jumpinstruction.h"
#include "callinstruction.h"
/**
 * @brief The SelectInstruction class 指令信息提取类
 */
class SelectInstruction
{
public:
    SelectInstruction();


    /**select里的执行process的类型，SEL_JMP,SEL_CALL*/
    SELECT_JMP_CALL_TYPE jmpCallType;
    /**select里的value的类型，CONSTANT,SEL_R(常数/寄存器)*/
    SELECT_VALUE_TYPE valueType;
    /**jump指令*/
    JumpInstruction jumpProcess;
    /**call指令*/
    CallInstruction callProcess;
    /**value值，当SELECT_VALUE_TYPE为CONSTANT类型时直接赋值，当为SEL_R时，R【i】当作i传入*/
    int value;
    /**寄存器号*/
    int regNumber;

    /**else标志位，没有遇到else之前，select的所有语句的elseflag值为false，else这一行的elseflag为true,标示select指令的结束*/
    bool elseFlag;
};

#endif // SELECTINSTRUCTION_H

